查看原文
其他

这本书很优秀,但是不推荐入门

守望先生 编程珠玑 2022-09-07

来源:公众号【编程珠玑】

作者:守望先生

网站:https://www.yanbinghu.com

前言

一本合适的入门书能让你学习的时候信心倍增,如饥似渴,而一本不合适的入门书让你望而却步,怀疑人生。

它很优秀

C++相对于其他语言来说,是一门较为复杂的语言,传言一年精通,三年熟悉,五年了解,十年用过。关于C++的言论实在太多,鉴于本人使用年限极短,不多做评价。那么我们来看看《C++ Primer》(注意,不是C++ primer plus),这本评分9.3分的书,它好在哪里?在我看来,这几个方面是非常不错的:

  • 事无巨细,从基本类型到字符串,向量和数组,从基本语句到函数;从类到容器,从动态内存到拷贝控制,从面向对象到模板泛型,它几乎涵盖了C++的各个方面,这也是为什么它是一块大钻头的原因之一。

  • 告诉你编译器怎么想。例如在介绍类的时候,告诉你编译器先编译成员的声明,然后再编译成员的函数体。在书中,有很多地方都告诉了你,编译器是如何做的,除此之外还会告诉你为什么要这样做,让你知其然,更知其所以然。

  • 最佳实践建议。一般来说,一段代码,能用就可以了,但为了保证代码生命力的长久,你必须去了解最佳实践。例如建议你尽量使用标准库类型而不是数组类型;尽量避免使用内置数组和指针等。

  • 贴心的注意事项。同样在书中很多地方告诉你,应该如何避免一些不推荐的操作,例如在说到string的时候,特别说明了字符串字面值与string是不同的类型;在说到命名空间的时候,建议不应该在头文件中使用using声明。

  • 一章结尾小结和的术语表。看完这一章了?不如看看最后的小结,看看本章核心内容是什么?感受到C++的复杂了?看看本章的术语你都了解了没有。

  • 新特性。在第五版中,最后一部分列出了C++11的新特性的索引。可以方便快速的了解C++11的新特性。

  • 配套的习题和完整可运行代码,并且有多种版本。地址:http://www.informit.com/store/c-plus-plus-primer-9780321714114

  • 可以当手册。当某个特性不是很清楚的时候,拿起来翻翻查看一下。

但不一定适合你

而正由于上面这些特点,它可能不适合初学者,其不适合的原因也非常明显:

  • 内容过多,让初学者望而却步,不知重点。在实践中,也不必全面地使用C++语言的各种特性

  • 虽然与书配套有完整的代码,但从书中内容来看,很难清楚书中代码该如何运行,可操作性对初学者来说难度比较大,也不利于快速上手。

  • 部分内容过深,初学者看的时候不知所云,容易受挫,自我怀疑。很多内容在讲解的时候,假设你已经懂了相关的前置知识,然而你可能不懂这些前置知识,到底难以继续。

  • 第一章从hello world到类,直接上命令行。作为新手的你,可能一脸懵逼。

  • 近千页,容易变砖

就像《C程序设计语言》一样,C++ primer并不适合没有编程基础的初学者,但是绝对适合任何一位C++学习者一读再读。

总结

它很优秀,但不一定适合你。如果你有一定的编程基础,或者已经通过其他入门书籍学习了C++,那么建议你直接食用。

再说两句

  • 如果你阅读了本书,觉得难,也不要怀疑,因为它不适合初学者

  • 语言特性之外还有诸如编译链接,内存管理等诸多前置知识需要了解。

  • 好不一定适合自己,具体情况具体分析。

  • 以上纯属个人观点,仅供参考。

不说了,显示器不够高了,垫一下。欢迎留言说说你的C++入门书,

推荐阅读:

好书推荐-C语言必读

C++中是如何调用C接口的?

为什么建议你用nullptr而不是NULL?

为什么说++i的效率比i++高?

关注公众号【编程珠玑】,获取更多Linux/C/C++/Python/Go/算法/工具等原创技术文章。后台免费获取经典电子书和视频资源

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存